package org.mbcorp.sar.model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

@Entity
@Table
public class Cliente implements Serializable{
	
	private static final long serialVersionUID = 1L;

	@Id
    @GeneratedValue(strategy = GenerationType.AUTO)
	private Integer id;
	
	@Column(nullable = false)
	private String ruc;
	
	@Column(nullable = false)
	private String razonSocial;
	
	@Column(nullable = true)
	private String nombreComercial;
	
	@Column(nullable = true)
	private Integer telefono;
	
	@Column(nullable = true)
	private String direccion;
	
	@Column(nullable = false)
	private Date fechaRegistro;
	
	@Column(nullable = false)
	private boolean flagBaja;
		
	@ManyToMany(fetch = FetchType.EAGER)
	@JoinTable(name="AreaCliente", joinColumns = {@JoinColumn(name="idCliente")},
		       inverseJoinColumns={@JoinColumn(name="idArea")})
	private List<Area> areas;

	@Column(nullable = true)
	private Integer diasPlazoAprobacion;
	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getRuc() {
		return ruc;
	}

	public void setRuc(String ruc) {
		this.ruc = ruc;
	}

	public String getRazonSocial() {
		return razonSocial;
	}

	public void setRazonSocial(String razonSocial) {
		this.razonSocial = razonSocial;
	}

	public String getNombreComercial() {
		return nombreComercial;
	}

	public void setNombreComercial(String nombreComercial) {
		this.nombreComercial = nombreComercial;
	}

	public Integer getTelefono() {
		return telefono;
	}

	public void setTelefono(Integer telefono) {
		this.telefono = telefono;
	}

	public String getDireccion() {
		return direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public Date getFechaRegistro() {
		return fechaRegistro;
	}

	public void setFechaRegistro(Date fechaRegistro) {
		this.fechaRegistro = fechaRegistro;
	}

	public boolean isFlagBaja() {
		return flagBaja;
	}

	public void setFlagBaja(boolean flagBaja) {
		this.flagBaja = flagBaja;
	}

	public List<Area> getAreas() {
		return areas;
	}

	public void setAreas(List<Area> areas) {
		this.areas = areas;
	}

	public Integer getDiasPlazoAprobacion() {
		return diasPlazoAprobacion;
	}

	public void setDiasPlazoAprobacion(Integer diasPlazoAprobacion) {
		this.diasPlazoAprobacion = diasPlazoAprobacion;
	}
	
}


	
